code = '''
from .c类型基础 import c类型基础
from .c域 import 输出
'''


def 创建类型(类型: str, 类型名: str):
    global code
    code += f'''
class {类型}(c类型基础):
    类型名 = '{类型名}'

class {类型}引用(c类型基础):
    类型名 = '{类型名}&'    
    
class {类型}指针(c类型基础):
    类型名 = f'{类型名}*'
    
class {类型}指针的指针(c类型基础):
    类型名 = f'{类型名}**'    
'''


创建类型('i8', 'int8_t')
创建类型('i16', 'int16_t')
创建类型('i32', 'int32_t')
创建类型('i64', 'int64_t')
创建类型('u8', 'uint8_t')
创建类型('u16', 'uint16_t')
创建类型('u32', 'uint32_t')
创建类型('u64', 'uint64_t')
创建类型('bf16', 'bfloat16_t')
创建类型('f16', 'half')
创建类型('f32', 'float')
创建类型('f64', 'double')
创建类型('boolean', 'bool')
创建类型('char', 'char')
创建类型('uchar', 'unsigned char')
创建类型('int', 'int')
创建类型('uint', 'unsigned int')
创建类型('short', 'short')
创建类型('ushort', 'unsigned short')
创建类型('long', 'long')
创建类型('ulong', 'unsigned long')
创建类型('longlong', 'long long')
创建类型('ulonglong', 'unsigned long long')

print(code)
with open('l0n0lc/c基础类型.py', 'w') as fp:
    fp.write(code)
